﻿Imports System.Reflection
Imports System.Reflection.Emit
Imports VBParser

Namespace Compiler.Semantic

    'Public Class InterfaceDescription
    '    Inherits GenericTypeDescription

    '    Public Sub New(ByVal parent As NameContainer)
    '        MyBase.New(parent)
    '    End Sub

    '    Private m_interfaceTypeBuilder As TypeBuilder
    '    Public Overrides Property UnderlyingType() As System.Type
    '        Get
    '            Return m_interfaceTypeBuilder
    '        End Get
    '        Set(ByVal value As System.Type)
    '            If Not TypeOf value Is TypeBuilder Then
    '                Throw New ArgumentOutOfRangeException("value", "The underlying type of an InterfaceDescription must be TypeBuilder")
    '            End If
    '            m_interfaceTypeBuilder = TryCast(value, TypeBuilder)
    '        End Set
    '    End Property

    '    'interface specified
    '    Private m_baseInterfaces As IList(Of TypeBinding)
    '    Public Property BaseInterfaces() As IList(Of TypeBinding)
    '        Get
    '            Return m_baseInterfaces
    '        End Get
    '        Set(ByVal value As IList(Of TypeBinding))
    '            m_baseInterfaces = value
    '        End Set
    '    End Property

    '    Private m_nestedTypes As IList(Of TypeDescription)
    '    Public Property NestedTypes() As IList(Of TypeDescription)
    '        Get
    '            Return m_nestedTypes
    '        End Get
    '        Set(ByVal value As IList(Of TypeDescription))
    '            m_nestedTypes = value
    '        End Set
    '    End Property

    '    Private m_interfaceSyntaxNode As InterfaceDeclaration
    '    Public Overrides Property SyntaxNode() As VBParser.Tree
    '        Get
    '            Return m_interfaceSyntaxNode
    '        End Get
    '        Set(ByVal value As VBParser.Tree)
    '            m_interfaceSyntaxNode = TryCast(value, InterfaceDeclaration)
    '        End Set
    '    End Property
    'End Class

End Namespace